package file;

import java.io.File;
import java.io.FileFilter;

/**
 * 有条件的获取一个目录中的子项
 */
public class ListFilesDemo2 {
    public static void main(String[] args) {
        //获取当前目录中名字以"."开始的所有子项
        File dir = new File(".");
        if(dir.isDirectory()){
            //文件过滤器
            FileFilter filter = new FileFilter() {
                /*
                    定义过滤规则，当参数file符合过滤要求那么accept方法应当
                    返回true。
                 */
                public boolean accept(File file) {
                    String fileName = file.getName();
                    System.out.println("正在过滤:"+fileName);
                    return fileName.startsWith(".");
                }
            };
            //重载的listFiles会将该目录中所有满足过滤器要求的子项返回。
            File[] subs = dir.listFiles(filter);
            System.out.println("满足过滤器要求的子项共:"+subs.length+"个");
            for(int i=0;i<subs.length;i++){
                System.out.println(subs[i].getName());
            }
        }


    }
}
